﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace FrontEndPlus.Módulos.Catálogos_y_Mantenimientos
{
    public partial class wbfrm_Mantenimiento_Citas : System.Web.UI.Page
    {
        #region Variables

        private WCF_Gimnasio.cls_Cita _cita = new WCF_Gimnasio.cls_Cita();
        private WCF_Gimnasio.ServiceClient _servicio = new WCF_Gimnasio.ServiceClient();

        private DataTable _registrosCita;

        #endregion

        #region Metodos
        
        private void CargarDatos()
        {
            _registrosCita = _servicio.Listar(1, _cita).Tables[0];

            _servicio.Close();
        }

        private void CrearObjeto()
        {
            if (gv_cita.Rows.Count != 0)
            {
                /* Columna: Id Cita */
                Response.Redirect("wbfrm_Cambio_Citas.aspx?idObjeto=" + Session["IdObjeto"].ToString(), true);
            }
        }

        private void VerficarBusqueda()
        {
            var valor = 0;
            int.TryParse(ddl_Tipo_Buscar.SelectedItem.Value, out valor);

            if (valor == 1)
            {
                _cita.Filtros[0] = txt_busqueda.Text;
                _cita.Filtros[1] = "Ft";
            }

            else if (valor == 2)
            {
                _cita.Filtros[0] = "0";
                _cita.Filtros[1] = txt_busqueda.Text;
            }
        }

        #endregion

        #region Eventos

        protected void Page_Load(object sender, EventArgs e)
        {
            _cita.IdUsuarioInicioSeccion = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString());
            _cita.Filtros = new string[2];

            if (!IsPostBack)
            {
                CargarDatos();

                ViewState["RegistrosCita"] = _registrosCita;
            }

            else
            {
                _registrosCita = (DataTable)ViewState["RegistrosCita"];
            }

            gv_cita.DataSource = _registrosCita;
            gv_cita.DataBind();
        }

        protected void txt_busqueda_TextChanged(object sender, EventArgs e)
        {
            if (gv_cita.Rows.Count != 0)
            {
                if (!string.IsNullOrEmpty(txt_busqueda.Text) || !string.IsNullOrWhiteSpace(txt_busqueda.Text))
                {
                    VerficarBusqueda();

                    gv_cita.DataSource = _servicio.Listar(2, _cita);
                    gv_cita.DataBind();
                }

                else
                {
                    CargarDatos();
                }
            }
        }

        protected void gv_cita_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gv_cita.PageIndex = e.NewPageIndex;

            CargarDatos();

            gv_cita.DataSource = _registrosCita;
            gv_cita.DataBind();
        }

        protected void gv_cita_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (gv_cita.Rows.Count != 0)
            {
                if (e.CommandName == "Seleccionar" || e.CommandName == "Select")
                {
                    var index = gv_cita.Rows[Convert.ToInt32(e.CommandArgument) - 1].Cells[1].Text;
                    Session["IdObjeto"] = index;
                }
            }
        }

        protected void imgbtn_Agregar_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("wbfrm_Cambio_Citas.aspx", true);
        }

        protected void imgbtn_Modificar_Click(object sender, ImageClickEventArgs e)
        {
            if (Session["IdObjeto"] != null)
            {
                CrearObjeto();
            }

            else
            {
                imgbtn_Modificar.Attributes.Add("onclick", "alert('Debe seleccionar un registro para completar la accion.')");
            }
        }

        #endregion

    }
}